//=====================================================================
//    COPYRIGHT(C) Innobeam
//    ALL RIGHTS RESERVED
//=====================================================================
//Filename    : CAN_send.v rev 1.0
//Created On  : 2019-10-11
//Author      : fei.yu
//*Description:
	//*1.发送拼接规律： 标识+地址+48位数据
	//*2.OA是主控发到各个控制器的标志；OB是各个控制器到主控的标志
//Include              
//Modification: fei.yu
//=====================================================================
module CAN_send(	iClk 			,
					iRst_n			,
					//to data_operation & pack module
					ivHHC_Key,			 
					ivHHC_Wheel1,				 
					ivHHC_Wheel2,				 
					ivHHC_Wheel3,				 
					ivHHC_VERSION,
					ovCanData_send
					);
//========================================================================
//    parameter
//========================================================================

parameter	DLY_TIME = 32'd200_000;

//========================END=============================================


//========================================================================
//    port
//========================================================================
input 					iClk;
input 					iRst_n;	
input		[15:0]		ivHHC_Key;		
input		[15:0]		ivHHC_Wheel1;		
input		[15:0]		ivHHC_Wheel2;		
input		[15:0]		ivHHC_Wheel3;		
input		[31:0]		ivHHC_VERSION;	
output      [63:0]      ovCanData_send;

//========================END=============================================

//========================================================================
//*Unpack
//========================================================================
reg      [63:0]       rvCanData_send;
reg      [ 12:0]       rvSendCounter;

assign ovCanData_send = rvCanData_send;

//BSC的数据发送(0C)
always@(posedge iClk or negedge iRst_n)begin
	if(!iRst_n)begin
		rvCanData_send <= 64'd0;
		rvSendCounter  <= 13'd0;
		end
	else begin
		rvSendCounter<=(rvSendCounter>=13'd64)?13'd0:rvSendCounter+1;
		case (rvSendCounter)
        0:begin  rvCanData_send<={8'h0b,8'd1,ivHHC_Wheel2,ivHHC_Wheel1,ivHHC_Key}; end
        32:begin rvCanData_send<={8'h0b,8'd2,ivHHC_VERSION,ivHHC_Wheel3}; end
		64:begin rvCanData_send<=rvCanData_send; end
        default:begin rvCanData_send<=rvCanData_send;  end
        endcase
		end
	end
endmodule


